package common.server.flowcontrol;

import java.util.concurrent.TimeUnit;

/**
 * 流控接口
 * @author Administrator
 * @version [版本号, 2017/12/13 0013]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface FlowControl {

    /**
     * 同步等待，直到拿到资源
     */
    void syncAcquire();

    /**
     *
     * @return
     */
    boolean acquire();


    /**
     * 释放资源
     */
    void release();

    /**
     * @param timeout
     * @return
     */
    boolean acquire(long timeout, TimeUnit unit);
}
